热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

本文|版权所有_javaweb开发(mybatis编程)

篇首语:本文由编程笔记#小编为大家整理,主要介绍了javaweb开发(mybatis编程)相关的知识,希望对你有一定的参考价值。【声明:版权所有

篇首语:本文由编程笔记#小编为大家整理,主要介绍了java web开发(mybatis编程)相关的知识,希望对你有一定的参考价值。


【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】


        目前java web标准的开发模式是ssm,前面两个s就是我们熟悉的spring和spring mvc。至于m,就是今天要聊的mybatis。使用mybatis,既需要使用配置文件mybatis-config.xml,也需要把sql语句写到***Dao.xml文件中。这就是它和hibernate不一样的地方。

        本文主要参考了两个链接,分别是链接1https://blog.csdn.net/aaa958099161/article/details/108098946,链接2https://juejin.cn/post/7042311420561588260,在此一并表示感谢。

        下面,就可以描述一下应该如何配置和使用mybatis。


1、利用IDEA+maven创建一个maven-archetype-quickstart工程


2、工程命名为Hello,不停单击Next,直到工程创建结束


3、修改pom.xml文件

3.1 添加依赖


org.mybatis
mybatis
3.4.5


mysql
mysql-connector-java
5.1.47

 3.2 在build下的pluginManagement后面添加资源说明



src/main/resources

**/*.properties
**/*.xml

false


src/main/java

**/*.properties
**/*.xml

false



4、创建数据库java_web,并且创建一个user.sql导入表,表的内容如下所示,


CREATE TABLE `user` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`name` varchar(50) NOT NULL,

`birthday` datetime DEFAULT NULL,

`sex` varchar(1) DEFAULT NULL,

`address` varchar(50) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8

5、添加User.java类

package org.example;
import java.io.Serializable;
import java.util.Date;
public class User implements Serializable
private Integer id;
private String name;
private Date birthday;
private String sex;
private String address;
@Override
public String toString()
return "User" +
"id=" + id +
", name='" + name + '\\'' +
", birthday=" + birthday +
", sex='" + sex + '\\'' +
", address='" + address + '\\'' +
'';

public Integer getId()
return id;

public void setId(Integer id)
this.id = id;

public String getName()
return name;

public void setName(String name)
this.name = name;

public Date getBirthday()
return birthday;

public void setBirthday(Date birthday)
this.birthday = birthday;

public String getSex()
return sex;

public void setSex(String sex)
this.sex = sex;

public String getAddress()
return address;

public void setAddress(String address)
this.address = address;


6、添加IUserDao.java类

package org.example;
import java.util.List;
public interface IUserDao
List findAll();

7、添加IUserDao.xml配置文件


PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">


        注意,这个文件在mybatis-config.xml中会被引用到。


8、修改App.java文件

package org.example;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
/**
* Hello world!
*
*/
public class App
public static void main( String[] args )

/* define local variable*/
InputStream in =null;
SqlSession sqlSession=null;
/* read xml file and make initial configuration */
try
in = Resources.getResourceAsStream("mybatis-config.xml");
sqlSession = new SqlSessionFactoryBuilder().build(in).openSession();
catch(IOException ioe)
return;

/* get user data from sqlSession */
IUserDao iUserDao = sqlSession.getMapper(IUserDao.class);
List list =iUserDao.findAll();
for (User user:list)
System.out.println(user);

/* database reading finished, close everything peacefully */
try
in.close();
catch(IOException ioe)
System.out.println("exception happened in in.close()");

finally
sqlSession.close();



9、在src/main下面创建resources目录,创建mybatis-config.xml文件


PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">



















10、所有配置文件文件都准备好后,结构如下所示,


11、利用maven-》“Hello”-》“Lifecycle”-》“compile”进行编译


12、到了这一步,就可以开始运行App.class文件了,

       执行过程中,如果有弹窗,选择“Hello”即可,

       不出意外的话,就可以看到这样的打印信息,

"C:\\Program Files (x86)\\Java\\jdk1.8.0_91\\bin\\java.exe" "-javaagent:C:\\Program Files\\JetBrains\\IntelliJ IDEA 2020.1.1\\lib\\idea_rt.jar=59510:C:\\Program Files\\JetBrains\\IntelliJ IDEA 2020.1.1\\bin" -Dfile.encoding=UTF-8 -classpath "C:\\Program Files (x86)\\Java\\jdk1.8.0_91\\jre\\lib\\charsets.jar;C:\\Program Files (x86)\\Java\\jdk1.8.0_91\\jre\\lib\\deploy.jar;C:\\Program Files (x86)\\Java\\jdk1.8.0_91\\jre\\lib\\ext\\access-bridge-32.jar;C:\\Program Files (x86)\\Java\\jdk1.8.0_91\\jre\\lib\\ext\\cldrdata.jar;C:\\Program Files (x86)\\Java\\jdk1.8.0_91\\jre\\lib\\ext\\dnsns.jar;C:\\Program Files (x86)\\Java\\jdk1.8.0_91\\jre\\lib\\ext\\jaccess.jar;C:\\Program Files (x86)\\Java\\jdk1.8.0_91\\jre\\lib\\ext\\jfxrt.jar;C:\\Program Files (x86)\\Java\\jdk1.8.0_91\\jre\\lib\\ext\\localedata.jar;C:\\Program Files (x86)\\Java\\jdk1.8.0_91\\jre\\lib\\ext\\nashorn.jar;C:\\Program Files (x86)\\Java\\jdk1.8.0_91\\jre\\lib\\ext\\sunec.jar;C:\\Program Files (x86)\\Java\\jdk1.8.0_91\\jre\\lib\\ext\\sunjce_provider.jar;C:\\Program Files (x86)\\Java\\jdk1.8.0_91\\jre\\lib\\ext\\sunmscapi.jar;C:\\Program Files (x86)\\Java\\jdk1.8.0_91\\jre\\lib\\ext\\sunpkcs11.jar;C:\\Program Files (x86)\\Java\\jdk1.8.0_91\\jre\\lib\\ext\\zipfs.jar;C:\\Program Files (x86)\\Java\\jdk1.8.0_91\\jre\\lib\\javaws.jar;C:\\Program Files (x86)\\Java\\jdk1.8.0_91\\jre\\lib\\jce.jar;C:\\Program Files (x86)\\Java\\jdk1.8.0_91\\jre\\lib\\jfr.jar;C:\\Program Files (x86)\\Java\\jdk1.8.0_91\\jre\\lib\\jfxswt.jar;C:\\Program Files (x86)\\Java\\jdk1.8.0_91\\jre\\lib\\jsse.jar;C:\\Program Files (x86)\\Java\\jdk1.8.0_91\\jre\\lib\\management-agent.jar;C:\\Program Files (x86)\\Java\\jdk1.8.0_91\\jre\\lib\\plugin.jar;C:\\Program Files (x86)\\Java\\jdk1.8.0_91\\jre\\lib\\resources.jar;C:\\Program Files (x86)\\Java\\jdk1.8.0_91\\jre\\lib\\rt.jar;C:\\Users\\feixiaoxing\\Desktop\\Hello\\target\\classes;D:\\software\\apache-maven-3.6.3-bin\\repository\\org\\mybatis\\mybatis\\3.4.5\\mybatis-3.4.5.jar;D:\\software\\apache-maven-3.6.3-bin\\repository\\mysql\\mysql-connector-java\\5.1.47\\mysql-connector-java-5.1.47.jar" org.example.App
Sat Oct 08 06:52:56 CST 2022 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
Userid=1, name='tom', birthday=Sat Oct 08 06:13:03 CST 2022, sex='m', address='china'
Process finished with exit code 0

        注意,数据是自己在数据库里面添加的,显示的内容由自己来设定的。



推荐阅读
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • 使用nodejs爬取b站番剧数据,计算最佳追番推荐
    本文介绍了如何使用nodejs爬取b站番剧数据,并通过计算得出最佳追番推荐。通过调用相关接口获取番剧数据和评分数据,以及使用相应的算法进行计算。该方法可以帮助用户找到适合自己的番剧进行观看。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文介绍了P1651题目的描述和要求,以及计算能搭建的塔的最大高度的方法。通过动态规划和状压技术,将问题转化为求解差值的问题,并定义了相应的状态。最终得出了计算最大高度的解法。 ... [详细]
  • FeatureRequestIsyourfeaturerequestrelatedtoaproblem?Please ... [详细]
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
  • 本文讨论了一个数列求和问题,该数列按照一定规律生成。通过观察数列的规律,我们可以得出求解该问题的算法。具体算法为计算前n项i*f[i]的和,其中f[i]表示数列中有i个数字。根据参考的思路,我们可以将算法的时间复杂度控制在O(n),即计算到5e5即可满足1e9的要求。 ... [详细]
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
author-avatar
林伯爵
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有